---
title: clsOtherFirm
summary: API reference for clsOtherFirm.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# clsOtherFirm

`clsOtherFirm` represents one external-firm reference row, including the firm type and mailing/contact details used when legal case data needs a firm that is not modeled as an internal attorney profile.* It validates the address state and city values and persists the row through the standard framework CRUD lifecycle.

## Purpose
- Stores the identifying name, firm-type code, address, and phone/fax details for one outside firm.
- Validates location fields and provides delete/retrieval helpers used by firm-maintenance workflows.

## Context
- Namespace: `SAIF.Business.Claim.Legal.TableMaint`
- Assembly/package: `SAIF.Business.Claim.Legal`

## Public members

| Member | Kind | Type | Purpose |
|---|---|---|---|
| OtherFirmID | Property | `Decimal` | Unique sequence number for the `OTHER_FIRM` row. |
| FirmName | Property | `String` | Business name of the outside firm. |
| OtherFirmTypeCode | Property | `String` | Code categorizing the kind of outside firm represented by the row. |
| Addr1 | Property | `String` | First street-address line for the row's mailing/location address. |
| Addr2 | Property | `String` | Second street-address line for the row's mailing/location address. |
| City | Property | `String` | City portion of the row's mailing/location address. |
| State | Property | `String` | State or province abbreviation for the row's mailing/location address. |
| Zip | Property | `String` | ZIP or postal code for the row's mailing/location address. |
| Zip4 | Property | `String` | ZIP+4 extension for the row's mailing/location address. |
| Phone | Property | `String` | Primary phone number stored for the row. |
| Fax | Property | `String` | Fax number stored for the row. |
| Create() | Protected Method | `—` | Obtains the next `OTHER_FIRM_SEQ` value for a new other-firm row. |
| BeforeRetrieve(inPortalRequest As IPortalRequest) | Protected Method | `—` | Builds the retrieve request used to load this other-firm row. |
| AfterRetrieve(inPortalRequest As IPortalRequest) | Protected Method | `IBusinessObject` | Copies the retrieved result-set row into this other-firm row and marks it as persisted. |
| BeforeInsert(inPortalRequest As IPortalRequest) | Protected Method | `—` | Adds the current field values to the insert request for `OTHER_FIRM`. |
| AfterInsert(InPortalRequest As IPortalRequest) | Protected Method | `—` | Verifies that one row was inserted and marks the object persisted; records an error when the insert fails. |
| BeforeUpdate(inPortalRequest As IPortalRequest) | Protected Method | `—` | Adds the current field values to the update request for `OTHER_FIRM`. |
| AfterUpdate(InPortalRequest As IPortalRequest) | Protected Method | `—` | Verifies that one row was updated and marks the object persisted; records a contention error when the update fails. |
| BeforeDelete(inPortalRequest As IPortalRequest) | Protected Method | `—` | Builds the delete request for `OTHER_FIRM` using this row's key values. |
| AfterDelete(InPortalRequest As IPortalRequest) | Protected Method | `—` | Verifies that one row was deleted and resets the object to a new state; records a contention error when the delete fails. |
| SetAddr1Null() | Method | `—` | Clears the stored first address line value. |
| SetAddr2Null() | Method | `—` | Clears the stored second address line value. |
| SetCityNull() | Method | `—` | Clears the stored city value value. |
| SetStateNull() | Method | `—` | Clears the stored state value value. |
| SetZipNull() | Method | `—` | Clears the stored ZIP code value. |
| SetZip4Null() | Method | `—` | Clears the stored ZIP+4 extension value. |
| SetFaxNull() | Method | `—` | Clears the stored fax number value. |
| IsAddr1Null() | Method | `Boolean` | Reports whether the stored first address line value is currently empty. |
| IsAddr2Null() | Method | `Boolean` | Reports whether the stored second address line value is currently empty. |
| IsCityNull() | Method | `Boolean` | Reports whether the stored city value value is currently empty. |
| IsStateNull() | Method | `Boolean` | Reports whether the stored state value value is currently empty. |
| IsZipNull() | Method | `Boolean` | Reports whether the stored ZIP code value is currently empty. |
| IsZip4Null() | Method | `Boolean` | Reports whether the stored ZIP+4 extension value is currently empty. |
| IsFaxNull() | Method | `Boolean` | Reports whether the stored fax number value is currently empty. |
| Load(inDataPortalInfo As IDataPortalInfo, Row As clsResultSet.DataRow) | Protected Friend Method | `—` | Loads this other-firm row from a retrieved `clsResultSet.DataRow` and attaches criteria/data-portal state. |
| New() | Protected Friend Constructor | `—` | Framework constructor used when the data portal creates or materializes an instance. |
| New(inDataPortalInfo As IDataPortalInfo) | Protected Friend Constructor | `—` | Framework constructor that prepares the instance with data-portal context before creation or loading. |
| NewOtherFirm(inDataportal As IDataPortalInfo) | Shared Method | `clsOtherFirm` | Creates a new unsaved other-firm row through the data portal so framework initialization runs. |
| GetOtherFirm(inDataportal As IDataPortalInfo, inOtherFirmSeqNum As Decimal, inFirmName As String, inOtherFirmTypeCode As String, inAddr1 As String, inAddr2 As String, inCity As String, inState As String, inZip As String, inZip4 As String, inPhone As String, inFax As String) | Shared Method | `clsOtherFirm` | Retrieves an outside-firm row using the full criteria set captured by the row fields.* |
| GetOtherFirm(inDataportal As IDataPortalInfo, OtherFirmNum As Decimal) | Shared Method | `clsOtherFirm` | Retrieves a single outside-firm row by sequence number. |
| AddBusinessRules() | Protected Method | `—` | Registers rules validating the state abbreviation and restricting city values to alphabetic text. |
| ValidateState() | Method | `Boolean` | Validates the current state abbreviation by resolving it through `ALL_STATES` and checking for a valid NCCI state code. |

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources

- `SAIF.Business.Claim.Legal\TableMaint\clsOtherFirm.vb`
